package q104_maxDepth;

import CommonClass.Common.TreeNode;
public class Solution_1 {
    public static void main(String[] args) {

    }

    /**
     * 如果要使用递归的方式来获得层数，那么就需要有一个level来记录这一层到达了哪里
     */
    public int maxDepth(TreeNode root) {
        if (root == null) {
            return 0;
        }
        return f(root,0);
    }

    /**
     * 递归的方法，我们是从0开始出发的，所以如果即使root为空，上一层也传入了一个 + 1的数值
     */
    private int f(TreeNode root, int i) {
        if (root == null) {
            return i;
        }
        // 注意要用max来求得最大层数
        return Math.max(f(root.left, i + 1), f(root.right, i + 1));
    }
}
